| commit | 3eaaa9687e90c65f51762deb343f18bef95d4e8e | [log] [tgz] |
|---|---|---|
| author | Christophe Pinelli <cpinelli@google.com> | Thu Oct 19 14:48:57 2023 +0000 |
| committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | Wed Dec 06 22:43:37 2023 +0000 |
| tree | 685ce5165a60bf52204b883bac4e100dfe9a0c56 | |
| parent | d6f7188773409c8f5ad5fc7d3eea5b1751439e26 [diff] |
Restrict activity launch when caller is running in the background Test: atest BackgroundActivityLaunchTest#testBackgroundActivityBlockedInStartNextMatchingActivity Bug: 230492947 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e1edaa27ea2f6911977556c5bba876a2319d5e2d) Merged-In: Ic88dd1e79b867b44cdcd6fc86650f5de6ebcc23d Change-Id: Ic88dd1e79b867b44cdcd6fc86650f5de6ebcc23d
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index 6b65922..dd3a3c5 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -1412,7 +1412,12 @@ final long origId = Binder.clearCallingIdentity(); // TODO(b/64750076): Check if calling pid should really be -1. - final int res = getActivityStartController() + try { + if (options == null) { + options = new SafeActivityOptions(ActivityOptions.makeBasic()); + } + options.getOptions(r).setAvoidMoveToFront(); + final int res = getActivityStartController() .obtainStarter(intent, "startNextMatchingActivity") .setCaller(r.app.getThread()) .setResolvedType(r.resolvedType) @@ -1428,13 +1433,11 @@ .setRealCallingUid(r.launchedFromUid) .setActivityOptions(options) .execute(); - Binder.restoreCallingIdentity(origId); - - r.finishing = wasFinishing; - if (res != ActivityManager.START_SUCCESS) { - return false; + r.finishing = wasFinishing; + return res == ActivityManager.START_SUCCESS; + } finally { + Binder.restoreCallingIdentity(origId); } - return true; } }